package com.nccsjz.utils;

import java.util.List;

/**
 * Page类封装了分页信息
 * 
 * @author Administrator
 * 
 */
public class Page {

	/** data List<?>封装分页数据 */
	private List<?> data;

	/** pageSize Long 页容量(即每页有几条数据) */
	private Long pageSize;

	/** pageNo Long 页码 （从1开始计算） **/
	private Long pageNo = 1L;

	/** recordCount Long 总记录数 */
	private Long recordCount;

	/**
	 * 默认构造方法
	 */
	public Page() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	/**
	 * 带参构造方法
	 * 
	 * @param pageSize 初始化页容量
	 */
	public Page(Long pageSize) {
		super();
		this.pageSize = pageSize;
	}



	/**
	 * 获取页数据 
	 * @return
	 */
	public List<?> getData() {
		return data;
	}

	/**
	 * 设置页数据
	 * 
	 * @param data
	 */
	public void setData(List<?> data) {
		this.data = data;
	}

	/**
	 * 获取页容量
	 * 
	 * @return
	 */
	public Long getPageSize() {
		return pageSize;
	}

	/**
	 * 设置页容量
	 * 
	 * @param pageSize
	 */
	public void setPageSize(Long pageSize) {
		this.pageSize = pageSize;
	}

	/**
	 * 获取当前页码
	 * 
	 * @return
	 */
	public Long getPageNo() {
		return pageNo;
	}

	/**
	 * 设置当前页码
	 * 
	 * @param pageNo
	 */
	public void setPageNo(Long pageNo) {
		this.pageNo = pageNo;
	}

	/**
	 * 获取总页数
	 * 
	 * @return
	 */
	public Long getTotalPages() {
		if (pageSize == 0) {
			return 0L;
		} else {
			long totalPages = recordCount / pageSize;
			return recordCount % pageSize == 0 ? totalPages : totalPages + 1;
		}
	}

	/**
	 * 设置记录条数
	 * 
	 * @param recordCount
	 */
	public void setRecordCount(Long recordCount) {
		this.recordCount = recordCount;
	}
	
	
	/**
	 * 获取记录条数
	 * 
	 * @return
	 */
	public Long getRecordCount() {
		return recordCount;
	}

	/**
	 * 获取记录起始索引
	 * 
	 * @return
	 */
	public Long getStartIndex(){
		return ((pageNo-1)*pageSize + 1);		
	}
	
	/**
	 * 获取记录结束索引
	 * 
	 * @return
	 */
	public Long getEndIndex(){
		return pageNo * pageSize;
	}
}
